package com.meitianhui.convenitenbuy.module.store.di;

import android.app.Activity;

import com.meitianhui.convenitenbuy.di.PerActivity;
import com.meitianhui.convenitenbuy.module.store.presenter.CouponPayPresenter;
import com.meitianhui.convenitenbuy.module.store.presenter.GroupSalePresenter;
import com.meitianhui.convenitenbuy.module.store.presenter.GroupShopCarPayPresenter;
import com.meitianhui.convenitenbuy.module.store.presenter.GroupShopCarPresenter;
import com.meitianhui.convenitenbuy.module.store.presenter.OneLotteryDSKPresenter;
import com.meitianhui.convenitenbuy.module.store.presenter.OneLotteryGGLPresenter;
import com.meitianhui.convenitenbuy.module.store.presenter.OneLotteryParticipatePresenter;
import com.meitianhui.convenitenbuy.module.store.presenter.OneLotteryYYYPresenter;
import com.meitianhui.convenitenbuy.module.store.presenter.PreferentialActivityPresenter;
import com.meitianhui.convenitenbuy.module.store.presenter.PreferentialDetailPresenter;
import com.meitianhui.convenitenbuy.module.store.presenter.ShopCarPayPresenter;
import com.meitianhui.convenitenbuy.module.store.presenter.StoreDetailPresenter;
import com.meitianhui.convenitenbuy.module.store.presenter.StoreMapPresenter;
import com.meitianhui.convenitenbuy.module.store.presenter.StoreOneLotteryPresenter;
import com.meitianhui.convenitenbuy.module.store.presenter.StorePresenter;
import com.meitianhui.convenitenbuy.module.store.presenter.StoreSearchPresenter;
import com.meitianhui.convenitenbuy.module.store.ui.StoreFragment;
import com.meitianhui.convenitenbuy.module.store.ui.activity.CouponPayActivity;
import com.meitianhui.convenitenbuy.module.store.ui.activity.GroupSaleActivity;
import com.meitianhui.convenitenbuy.module.store.ui.activity.GroupShopCarActivity;
import com.meitianhui.convenitenbuy.module.store.ui.activity.GroupShopCarPayActivity;
import com.meitianhui.convenitenbuy.module.store.ui.activity.OneLotteryActivity;
import com.meitianhui.convenitenbuy.module.store.ui.activity.OneLotteryDSKActivity;
import com.meitianhui.convenitenbuy.module.store.ui.activity.OneLotteryGGLActivity;
import com.meitianhui.convenitenbuy.module.store.ui.activity.OneLotteryParticipateActivity;
import com.meitianhui.convenitenbuy.module.store.ui.activity.OneLotteryYYYActivity;
import com.meitianhui.convenitenbuy.module.store.ui.activity.PreferentialActivityActivity;
import com.meitianhui.convenitenbuy.module.store.ui.activity.PreferentialDetailActivity;
import com.meitianhui.convenitenbuy.module.store.ui.activity.ShopCarPayActivity;
import com.meitianhui.convenitenbuy.module.store.ui.activity.StoreDetailActivity;
import com.meitianhui.convenitenbuy.module.store.ui.activity.StoreMapActivity;
import com.meitianhui.convenitenbuy.module.store.ui.activity.StoreSearchActivity;

import dagger.Module;
import dagger.Provides;

/**
 * Created by Administrator on 2017/11/2.
 */
@Module
public class StoreModule {
    private StorePresenter storePresenter;
    private StoreDetailPresenter storeDetailPresenter;
    private ShopCarPayPresenter shopCarPayPresenter;
    private GroupSalePresenter groupSalePresenter;
    private PreferentialActivityPresenter preferentialActivityPresenter;
    private StoreOneLotteryPresenter oneLotteryPresenter;
    private OneLotteryYYYPresenter oneLotteryYYYPresenter;
    private OneLotteryGGLPresenter oneLotteryGGLPresenter;
    private OneLotteryDSKPresenter oneLotteryDSKPresenter;
    private OneLotteryParticipatePresenter oneLotteryParticipatePresenter;
    private PreferentialDetailPresenter preferentialDetailPresenter;
    private Activity mActivity;
    private StoreSearchPresenter mStoreSearchPresenter;
    private CouponPayPresenter couponPayPresenter;
    private StoreMapPresenter mStoreMapPresenter;
    private GroupShopCarPresenter groupShopCarPresenter;
    private GroupShopCarPayPresenter groupShopCarPayPresenter;

    public StoreModule(Activity mActivity) {
        this.mActivity = mActivity;
    }
    @Provides
    @PerActivity
    public Activity provideActivity() {
        return mActivity;
    }

    public StoreModule(StoreFragment activity) {
        storePresenter = new StorePresenter(activity, activity);
    }

    @Provides
    StorePresenter provideStorePresenter() {
        return storePresenter;
    }

    public StoreModule(StoreDetailActivity activity) {
        storeDetailPresenter = new StoreDetailPresenter(activity, activity);
    }

    @Provides
    StoreDetailPresenter provideStoreDetail() {
        return storeDetailPresenter;
    }

    public StoreModule(ShopCarPayActivity activity) {
        shopCarPayPresenter = new ShopCarPayPresenter(activity, activity);
    }

    @Provides
    ShopCarPayPresenter provideShopCarPay() {
        return shopCarPayPresenter;
    }

    public StoreModule(GroupSaleActivity activity) {
        groupSalePresenter = new GroupSalePresenter(activity, activity);
    }

    @Provides
    GroupSalePresenter provideGroupSale() {
        return groupSalePresenter;
    }

    public StoreModule(PreferentialActivityActivity activity) {
        preferentialActivityPresenter = new PreferentialActivityPresenter(activity, activity);
    }

    @Provides
    PreferentialActivityPresenter providePreferentialActivity() {
        return preferentialActivityPresenter;
    }

    public StoreModule(OneLotteryActivity activity) {
        oneLotteryPresenter = new StoreOneLotteryPresenter(activity, activity);
    }

    @Provides
    StoreOneLotteryPresenter provideStoreOneLotteryPresenter() {
        return oneLotteryPresenter;
    }
    public StoreModule(OneLotteryYYYActivity activity) {
        oneLotteryYYYPresenter = new OneLotteryYYYPresenter(activity, activity);
    }

    @Provides
    OneLotteryYYYPresenter provideOneLotteryYYYPresenter() {
        return oneLotteryYYYPresenter;
    }
    public StoreModule(OneLotteryGGLActivity activity) {
        oneLotteryGGLPresenter = new OneLotteryGGLPresenter(activity, activity);
    }

    @Provides
    OneLotteryGGLPresenter provideOneLotteryGGLPresenter() {
        return oneLotteryGGLPresenter;
    }

    public StoreModule(OneLotteryDSKActivity activity) {
        oneLotteryDSKPresenter = new OneLotteryDSKPresenter(activity, activity);
    }

    @Provides
    OneLotteryDSKPresenter provideOneLotteryDSKPresenter() {
        return oneLotteryDSKPresenter;
    }
    public StoreModule(OneLotteryParticipateActivity activity) {
        oneLotteryParticipatePresenter = new OneLotteryParticipatePresenter(activity, activity);
    }

    @Provides
    OneLotteryParticipatePresenter provideOneLotteryParticipatePresenter() {
        return oneLotteryParticipatePresenter;
    }


    public StoreModule(StoreSearchActivity activity) {
        mStoreSearchPresenter = new StoreSearchPresenter(activity, activity);
    }

    @Provides
    StoreSearchPresenter provideStoreSearchPresenter() {
        return mStoreSearchPresenter;
    }

    public StoreModule(PreferentialDetailActivity activity) {
        preferentialDetailPresenter = new PreferentialDetailPresenter(activity, activity);
    }

    @Provides
    PreferentialDetailPresenter providePreferentialDetail() {
        return preferentialDetailPresenter;
    }

    public StoreModule(CouponPayActivity activity) {
        couponPayPresenter = new CouponPayPresenter(activity, activity);
    }

    @Provides
    CouponPayPresenter provideCouponPay() {
        return couponPayPresenter;
    }


    public StoreModule(StoreMapActivity activity) {
        mStoreMapPresenter = new StoreMapPresenter(activity, activity);
    }

    @Provides
    StoreMapPresenter provideStoreMapPresenter() {
        return mStoreMapPresenter;
    }

    public StoreModule(GroupShopCarActivity activity) {
        groupShopCarPresenter = new GroupShopCarPresenter(activity, activity);
    }

    @Provides
    GroupShopCarPresenter provideGroupShopCar() {
        return groupShopCarPresenter;
    }


    public StoreModule(GroupShopCarPayActivity activity) {
        groupShopCarPayPresenter = new GroupShopCarPayPresenter(activity, activity);
    }

    @Provides
    GroupShopCarPayPresenter provideGroupShopCarPay() {
        return groupShopCarPayPresenter;
    }

}
